short-circuit in case an empty root level would be build (and thus
authorKristian Rietveld <kris@imendio.com>
Wed, 5 Mar 2008 10:36:35 +0000 (10:36 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Wed, 5 Mar 2008 10:36:35 +0000 (10:36 +0000)
2008-03-05  Kristian Rietveld  <kris@imendio.com>

* gtk/gtktreemodelfilter.c (gtk_tree_model_filter_row_inserted):
short-circuit in case an empty root level would be build (and thus
directly destroyed) if no virtual root has been set.

svn path=/trunk/; revision=19712

ChangeLog
gtk/gtktreemodelfilter.c

index d1ecc23beb21d7838110d812e64c63eff341b61b..f8ff8d984ffeb8527f211de8798a53e082eadfad 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-03-05  Kristian Rietveld  <kris@imendio.com>
+
+       * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_row_inserted):
+       short-circuit in case an empty root level would be build (and thus
+       directly destroyed) if no virtual root has been set.
+
 2008-03-04  Matthias Clasen  <mclasen@redhat.com>
 
        * modules/printbackends/cups/gtkprintbackendcups.c: 
index 4c32f9ffea2a27948ee21f8620cab2a523937280..7a4aa69314582a047a0f7f08d36742842f97364b 100644 (file)
@@ -1373,6 +1373,11 @@ gtk_tree_model_filter_row_inserted (GtkTreeModel *c_model,
 
   if (!filter->priv->root)
     {
+      /* No point in building the level if this node is not visible. */
+      if (!filter->priv->virtual_root
+          && !gtk_tree_model_filter_visible (filter, c_iter))
+        goto done;
+
       /* build level will pull in the new child */
       gtk_tree_model_filter_build_level (filter, NULL, NULL, FALSE);